perm filename LINES.FAI[XX,LCS]1 blob sn#149687 filedate 1975-03-08 generic text, type T, neo UTF8
00100		TITLE LINES
00200		EXTERNAL DST,SIZ,PLTR,DPY,AIVECT,AVECT,PLOT,.COMM.
00300		ENTRY LINES	;	SUBROUTINE LINES(A,B,L)
00400		DEFINE FIXX(N)	;	COMMON/DST/BB,CC
00500	   <	JUMPGE N,.+5	;	COMMON /SIZ/RSZ,JCEN,KCEN /FL/IC,NZ,NX,RZ,XGP
00600		MOVNS N		;	COMMON/DL/IXRX,SAVER,AA /PLTR/IPLT,RHT,DIS
00700		FIX N,233000	;	COMMON R2,JA,CENTR,JB,RJQ(20),JQ(20)
00800		MOVNS N		;	COMMON/DPY/JJ(4000),WDS(250),MEDIT,IGO
00900		CAIA		;	EQUIVALENCE (ITOP,JJ(3999)),(IBOT,JJ(4000))
01000		FIX N,233000  >	;	1,(JJ2,JJ(2))
01100		DEFINE FLOAT(N)	;	DATA BB/.008/,CC/3.5/
01200	   <	TLC N,232000	;C  SET XGP TO 1200.0 FOR MARGIN IN XEROX COPIES
01300		FADR N,N      >
01400		DEFINE ABS(N)
01500	   <	SKIPGE N
01600		MOVNS N	      >
01700		T←1 ↔ M←2 ↔ N←3 ↔ K←4
01800	
01900	LINES:	0
02000				;	GO TO 23
02100		JRST L23
02200				;22	IF(JQ(1).NE.0)GO TO 23
02300	L22:	SKIPE PLTR+=27
02400		JRST L23
02500				;	IF(CC.EQ.1000)GO TO 23
02600		MOVSI T,212764
02700		CAMN T,DST+1
02800		JRST L23
02900				;	B=B*(CC-BB*ABS(A))
03000		MOVE T,@(16)
03100		ABS(T)
03200		FMPR T,DST
03300		FSBR T,DST+1
03400		FMPRM T,@1(16)
03500		MOVNS @1(16)
03600				;23	IF(IPLT)GO TO 2
03700	L23:	SKIPGE PLTR
03800		JRST L2
03900				;	M=A*RSZ
04000		MOVE M,@(16)
04100		FMPR M,SIZ
04200		FIXX(M)
04300				;	N=B*RSZ
04400		MOVE N,@1(16)
04500		FMPR N,SIZ
04600		FIXX(N)
04700				;	IF(RSZ.LE.0.8571)GO TO 3
04800		MOVE T,[=0.8571]
04900		CAML T,SIZ
05000		JRST L3
05100	
05200				;	M=M-JCEN
05300		SUB M,SIZ+1
05400				;	N=N-KCEN
05500		SUB N,SIZ+2
05600				;	IF(JA.NE.8)GO TO 5
05700		MOVEI T,10
05800		CAME T,.COMM.+1
05900		JRST L5
06000				;	IF(M.GT.511)M=511
06100		CAMLE M,[=511]
06200		HRRZI M,=511
06300				;	IF(M.LT.-511)M=-511
06400		CAMGE M,[-=511]
06500		HRROI M,-=511
06600				;5	IF(IABS(M).GT.512)GO TO 77
06700	L5:	CAIG M,=512
06800		CAMGE M,[-=512]
06900		JRST L77
07000				;	IF(IABS(N).LT.512)GO TO 4
07100		CAIGE N,=512
07200		CAMG N,[-=512]
07300		CAIA
07400		JRST L4
07500				;77	KZ=-1
07600	L77:	SETOM KZ#
07700				;	RETURN
07800		JRA 16,3(16)
07900				;4	IF(KZ.EQ.0)GO TO 6
08000	L4:	SKIPN KZ
08100		JRST L6
08200				;	KZ=0
08300		SETZM KZ
08400		MOVEM M,MM#	;	GO TO 1
08450		MOVEM N,NN#
08500		JRST L1
08600				;3	IF(JA.EQ.44)GO TO 6
08700	L3:   	MOVEI T,54
08800		CAMN T,.COMM.+1
08900		JRST L6
09000				;	K=B
09100		MOVE K,@1(16)
09200		FIXX(K)
09300				;	IF(K.GT.ITOP)ITOP=B
09400		CAMG K,DPY+=3998
09500		JRST L333
09600		MOVE T,@1(16)
09700		FIXX(T)
09800		MOVEM T,DPY+=3998
09900	
10000				;	IF(K.LT.IBOT)IBOT=B
10100	L333:	CAML K,DPY+=3999
10200		JRST L6
10300		MOVE T,@1(16)
10400		FIXX(T)
10500		MOVEM T,DPY+=3999
10600				;6	IF(JJ2.GT.3990)RETURN
10700	L6:   	MOVEI T,7626
10800		CAMGE T,DPY+1
10900		JRA 16,3(16)
11000				;	IF(L.EQ.3)GO TO 1
11100		MOVEM M,MM
11200		MOVEM N,NN
11300		HRRZI T,3
11400		CAMN T,@2(16)
11500		JRST L1
11600				;	CALL AVECT(M,N)
11700		JSA 16,AVECT
11800		JUMP MM
11900		JUMP NN
12000				;	RETURN
12100		JRA 16,3(16)
12200				;1	CALL AIVECT(M,N)
12300	L1:   	JSA 16,AIVECT
12400		JUMP MM
12500		JUMP NN
12600				;	RETURN
12700		JRA 16,3(16)
12800				;2	IF(IPLT.EQ.-2)RETURN
12900	L2:   	MOVNI T,2
13000		CAMN T,PLTR
13100		JRA 16,3(16)
13200				;9	M=ROFF(A*DIS)
13300	L9:   	MOVE M,@(16)
13400		FMPR M,PLTR+2
13500		SKIPGE M
13600		FADR M,[-=1.0]
13700		FADR M,[=0.5]
13800		FIXX(M)
13900		MOVEM M,MM
14000				;	N=ROFF(B*RHT)
14100		MOVE N,@1(16)
14200		FMPR N,PLTR+1
14300		SKIPGE N
14400		FADR N,[-=1.0]
14500		FADR N,[=0.5]
14600		FIXX(N)
14700		MOVEM N,NN
14800				;8	CALL PLOT(M,N,L)
14900	L8:	MOVE T,@2(16)
15000		MOVEM T,LL#
15100		JSA 16,PLOT
15200		JUMP MM
15300		JUMP NN
15400		JUMP LL
15500				;	END
15600		JRA 16,3(16)
15700		END